RubyKaigi 2022 Day2 Matz Keynote
Contribute to Ruby
インターネットに親切な人がいる
正直いうと親切な人が多すぎる
親切な人々の例
Ruby is too good to be a scripting language
良すぎる
Scripting languages do not need OOP No one use Ruby, They use Perl/PHP/Python
You shouldn't have create Ruby, We should focus on Perl
Ruby is slow
Web age is over, AI / ML / Web3!
Ruby is dead
Ruby is dead every year
Ruby is not Rust/Zig/Go/Python
イライラするけどそれはRubyの悪口を言われたからではない
フェアな批判ではないからイライラする
虎の威を借る狐
特にPythonユーザー
Being majority does not make them superiory
Seek the VALUE
Productivity
Rails by DHH
小さなチームでWebアプリを作る道具
バックエンドチームとフロントエンドチームと…みたいになるのはよくない
小さいチームにするためにRailsにHotwireのような仕組みを作っている Community
初期はMatzがすべてデザイン
現在はMatzがCRubyを書くことは減った
コミュニティが開発している
Joy
楽しみ、喜び
楽しかったとか儲かったとか感謝される喜び
Rubyで生活が良くなる
Money
2001, 最初のRuby Conf
フロリダ州
参加者34人
ACMの直前の週だったのでついでの参加者が多かった
いまは仕事で使っているからとか会社から送り出される参加者も増えた
Top Ruby Companies
Rubyを使っている企業の時価総額
AirBnB
JRuby
Shopify
Coinbase
Square
ZenDesk
freee
MoneyForward
mixi
Y Combinator - Top 50 Companies
https://gyazo.com/e45eada3babc38d84c3d2987184fc9a1
Top 50企業のうち52%がRuby関連企業
転職ドラフトの技術トレンド
RSpec使ってる企業は給与が高い
コミュニティが重要
Contributonが必要
How to contribute
Publicity - 広報
Blog
Tweet
例
技術的な経験
プロダクトの自慢
Reporting Bugs / Feature Requests
最近のRubyの改善はほとんどがユーザーからの提案による
初期はMatzのトップダウンでの開発
ここ10年はコミュニティからのボトムアップな開発
※提案のうち8割9割がRejectされる
Fixing / Implementing
GitHubでPull request受け付けるようになった
※Feature Requestに関してはコミュニティでの議論が先
Documentation Update
Typoの修正とかはいきなりPull request送ってもらってOK
Gems
社内で使っているものをGemsとして切り出して共有
Name
Symbolic Name vs Simple Name
Symbolic Name: nokogiriとか
Simple Name: jsonとかyamlとか
どう名付けるかで運命が変わるかもしれない
プログラミング言語にもいろいろある
APL
A Programming Language
Scope
Explicit Scope, Be Specific
どういうユースケースをカバーするのか明確な方が良い
DHH
Basecampで使っていたコードを切り出してRailsを作った
Triage
月イチの開発者ミーティング
Issueが多すぎる
見つかったものを順番に…とかになっている
IssueをPrioritizingすることが必要
Bookkeeping
時間切れで結論が出ずに終わることがある
結論が出なかった話は議事録を記録して次回に回さないといけない
Keeping Discussion Logs
Maintaining back-log
Translation
English
Japanese
Spanish
Chinese
...etc
Conferences / Meetups
Hiring Developers
Percormance
Memory Allocation improve
100万スレッド作れる
Data objects
3.0で消滅
3.2で復活
Structクラスのimmutable版
周辺ツールの充実によってRuby開発の生産性を上げることを重視
To Create Better World
Together
質疑応答
yuiseki.icon【質問】ボトムアップでRubyが改善されているとのことですが、ユーザーからのFeature Requestsを取捨選択する基準はありますか?
既存部分との整合性があるかどうか
メソッドの名前やアノテーションの適切さ
RubyにRustが入ることについて
Ruby自体はC
周辺ではRustなどが使われる
開発者のモチベーションが一番重要
RubyのASTクラス
RubyのLSP
Rubocopのルールを選ぶのがたるい
わかるyuiseki.icon
matzcop